When a computer system is connected to a remote computer system via a public telephone network, a modem is typically used to connect the computer system to the telephone network. The function of the modem is to convert a binary digital signal into an analog signal that is suitable for transmission over the telephone network, and to convert an analog signal back into a digital signal.
Occasionally, a situation occurs in which an incoming call to a particular computer system's modem occurs while that modem is connected to another party via the telephone network. Ordinarily, the calling party receives a busy signal and the called party is not aware that a call is being attempted. In order for the calling party to be connected to the called party, the calling party either needs to dial the called party frequently and repeatedly to find out when the called party's line is no longer busy or to call again at some other time.
Repeated redials by the calling party typically unnecessarily increase the traffic in the telephone network. Another problem is that the calling party wastes time in these unsuccessful repeated redials. A further problem is that if the call is important to the called party, the called party will not be able to respond to it promptly because the called party does not know an incoming call is being attempted.
A call waiting feature offered by many telephone companies alerts a person using a telephone for conventional voice communication that a third party is attempting to call the user while the user is still making a call. In such a system, the called party is notified and has the option to interrupt from the ongoing call to take the waiting call. Typically, the telephone company provides the call waiting feature by sending a call waiting signal of a particular frequency to the telephone user via the telephone line. The user typically hears a sound that indicates a call is waiting.
When a modem is used, however, the call waiting signal is typically not recognized by the modem because the modem is not adapted to recognize the call waiting signal during its data conversion and transfer operation. Typically, the modem is only adapted to detect a carrier signal during the data conversion and transfer operation. The carrier signal is the signal sent by another modem via the telephone network that contains information. Typically, the modem includes a data mode filter that is adapted to detect the presence of the carrier signal during the data transfer operation of the modem (i.e., the data mode), and a call progress management filter to detect incoming signals during the modem's call connection operation (i.e., the call progress mode). The call waiting signal is typically not within the bandwidth of the data mode filter, but the call waiting signal is typically within the bandwidth of the call progress management filter.
A prior art scheme of call waiting signal detection for a modem is disclosed to in U.S. Pat. No. 4,852,151, issued Jul. 25, 1989, and entitled MODEM WITH CALL WAITING. That prior art scheme typically switches the data mode filter to the call progress management filter once the data mode filter detects a loss of the carrier signal. If the call progress management filter then detects energy in its bandwidth, the call waiting signal has been detected.
One disadvantage associated with this prior art scheme is that it switches to the call progress management filter as soon as the data mode filter detects a loss of the carrier signal. Sometimes, however, the carrier signal is temporarily lost due to a telephone line transmission problem. If that is so, there would be no call waiting signal and the carrier signal could return at any time. If the data mode filter is switched off because of the loss of the carrier signal, then subsequent data in the carrier signal would not be detected and therefore would be lost.
Another disadvantage of this prior art scheme is that when the call waiting signal has more than one signal cycle, the data mode filter is switched off more than once and the call progress management filter is switched on more than once to detect more than one call waiting signals. This typically results in unnecessary switching during call waiting signal detection.